package com.dxtan90.strategy;

import java.io.IOException;

/**
 * 通用爬取策略接口
 *
 * @author shijunhao
 * @date 2024/4/16 11:46
 */
public interface IFindStrategy {

    /**
     * 重试最大次数
     */
    int RETRY_MAX_TIMES = 5;
    /**
     * 提取失败的前置信息 + SOURCE_URL + 章节url 为完整错误提示信息
     */
    String ERROR_MSG_PREFIX = "当前章节获取失败。请进入原地址查看： ";

    /**
     * 将对应名称的小说按照网络地址爬取
     *
     * @param novelUrl 文章地址
     * @author shijunhao
     * @date 2024/4/16 11:44
     */
    void getNovel(String novelUrl) throws IOException;

    /**
     * 获取近期更新
     *
     * @param novelName   文章名称
     * @param categoryUrl 目录地址
     * @author shijunhao
     * @date 2024/4/18 13:59
     */
    void getRecentUpdate(String novelName, String categoryUrl);

    /**
     * @return java.lang.String 初始化资源地址 即 小说网站的域名 https://www.xxx.com
     * @author shijunhao
     * @date 2024/4/16 11:43
     */
    String getSourceUrl();

    /**
     * @return java.lang.String 初始化目录名称 即 本地存目录的文件夹名称
     * @author shijunhao
     * @date 2024/4/16 11:44
     */
    String getCategoryName();
}
